const { ethers } = require("hardhat");

/**
 * 检查Hardhat测试地址在真实网络上的余额
 * 注意：这个脚本需要配置真实的网络RPC才能运行
 */
async function main() {
    console.log("🔍 检查Hardhat测试地址在真实网络的状态\n");

    // Hardhat的默认测试地址
    const testAddresses = [
        "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", // 默认部署者
        "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", // 测试用户1
        "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", // 测试用户2
    ];

    console.log("📍 当前网络:", (await ethers.provider.getNetwork()).name);
    console.log("🔗 Chain ID:", (await ethers.provider.getNetwork()).chainId);
    console.log("");

    for (let i = 0; i < testAddresses.length; i++) {
        const address = testAddresses[i];
        try {
            const balance = await ethers.provider.getBalance(address);
            const balanceInEth = ethers.formatEther(balance);

            console.log(`地址 ${i}: ${address}`);
            console.log(`余额: ${balanceInEth} ETH`);

            if (balance > 0) {
                console.log("⚠️  警告：这个地址在真实网络上有余额！");
            } else {
                console.log("✅ 正常：余额为0");
            }
            console.log("");
        } catch (error) {
            console.log(`❌ 查询地址 ${address} 失败:`, error.message);
        }
    }

    console.log("📝 重要说明:");
    console.log("1. 这些地址的私钥是公开的，任何人都知道");
    console.log("2. 如果有人向这些地址转账，资金会立即被他人取走");
    console.log("3. 绝对不要在主网或测试网上使用这些地址存储真实资金");
    console.log("4. 它们仅用于本地开发测试");
}

main()
    .then(() => process.exit(0))
    .catch((error) => {
        console.error("❌ 检查失败:", error.message);
        process.exit(1);
    });